#pragma once

//#ifndef IDDCX_VERSION_MAJOR
//#define IDDCX_VERSION_MAJOR 1
//#endif
//#ifndef IDDCX_VERSION_MINOR
//#define IDDCX_VERSION_MINOR 2
//#endif
//
//#include <windows.h>
//#include <bugcodes.h>
//#include <wudfwdm.h>
//#include <wdf.h>
////#include <iddcx.h>
//
//#if   IDDCX_VERSION_MINOR == 2
//#include <iddcx/1.2/IddCx.h>
//
//#elif IDDCX_VERSION_MINOR >= 4
//#include <iddcx/1.4/IddCx.h>
//
//#endif
//
//#include <dxgi1_6.h>
//#include <d3d11_4.h>
//#include <avrt.h>
//#include <wrl.h>
//
//#include <strsafe.h>
//
//#include <memory>
//#include <vector>

#pragma once

#include <unknwn.h>
#include <winrt/base.h>

#include <Windows.h>

#include <wdf.h>


#ifndef IDDCX_VERSION_MAJOR
#define IDDCX_VERSION_MAJOR 1
#endif

#ifndef IDDCX_VERSION_MINOR
#define IDDCX_VERSION_MINOR 2
#endif

#include <iddcx/1.2/IddCx.h>

#include <cstdio>
#include <strsafe.h>

#include <dxgi1_6.h>
#include <d3d11_4.h>
#include <avrt.h>

#include <memory>
#include <vector>

#include "public.h"


//extern TCHAR __DEBUG_BUFFER[128];
#define PrintfDebugString(_Fmt_, ...)                       \
do                                                          \
{															\
	TCHAR __DEBUG_BUFFER[128] = {0};						\
    StringCbPrintf(__DEBUG_BUFFER, sizeof(__DEBUG_BUFFER),  \
        TEXT("[VirtualMon] ") TEXT(_Fmt_), __VA_ARGS__);     \
    OutputDebugString(__DEBUG_BUFFER);                      \
} while (0)
